package com.jyw.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jyw.system.domain.SysUserDeptRole;
import com.jyw.system.domain.vo.UserDeptRoleVO;

import java.util.List;

/**
 * 用户部门角色关联Service接口
 *
 * @author system
 * @date 2023-08-09
 */
public interface ISysUserDeptRoleService extends IService<SysUserDeptRole> {

    /**
     * 新增用户部门角色关联
     *
     * @param sysUserDeptRole 用户部门角色关联
     * @return 结果
     */
     int insertSysUserDeptRole(SysUserDeptRole sysUserDeptRole);

    /**
     * 修改用户部门角色关联
     *
     * @param sysUserDeptRole 用户部门角色关联
     * @return 结果
     */
    public int updateSysUserDeptRole(SysUserDeptRole sysUserDeptRole);

    /**
     * 批量删除用户部门角色关联
     *
     * @param ids 需要删除的用户部门角色关联主键集合
     * @return 结果
     */
    public int deleteSysUserDeptRoleByIds(Long[] ids);

    /**
     * 删除用户部门角色关联信息
     *
     * @param id 用户部门角色关联主键
     * @return 结果
     */
    public int deleteSysUserDeptRoleById(Long id);

    /**
     * 通过角色ID查询角色使用数量
     *
     * @param roleId 角色ID
     * @return 结果
     */
     int countUserDeptRoleByRoleId(Long roleId);

    /**
     * 获取用户默认的部门角色
     *
     * @return
     */
    List<SysUserDeptRole> getUserDefault(Long userId);

    /**
     * 获取用户拥有的部门角色信息
     *
     * @return
     */
    List<UserDeptRoleVO> getUserDeptRoleInfo();
}
